home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
01
/
8
/
DISK0182.ZIP
/
SPEC-OCC.BAS
< prev
next >
Wrap
BASIC Source File
|
1983-09-26
|
11KB
|
345 lines
10 KEY OFF:CLS
20 SCREEN 0
30 WIDTH 40
40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
50 PRINT"░┌───────────────────────────────────┐░"
60 PRINT"░│ │░"
70 PRINT"░│ 6017-A.BAS │░"
80 PRINT"░│ SPECIAL OCCASIONS │░"
90 PRINT"░│ │░"
100 PRINT"░│ │░"
110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
120 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
130 PRINT"░│ █ █ █ █ █ █ │░"
140 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
150 PRINT"░│ █ █ █ █ █ │░"
160 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
170 PRINT"░│ │░"
180 PRINT"░│ International PC Owners │░"
190 PRINT"░│ │░"
200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
210 PRINT"░│ │░"
220 PRINT"░└───────────────────────────────────┘░"
230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
240 PRINT
250 PRINT " PRESS ANY KEY TO CONTINUE
260 A$=INKEY$: IF A$="" THEN 260
270 WIDTH 80
280 CLS
1000 '**********************************
1010 '** **
1020 '** SPECIAL OCCASIONS **
1030 '** by PHIL MICHITSCH **
1040 '** **
1050 '** IBM 64K, 1 DISK DRIVE **
1060 '** PRINTER OPTIONAL **
1070 '** 40 COLUMN SCREEN **
1080 '** MONO OR COLOR **
1090 '** (USE MODE COMMAND **
1100 '** TO SWITCH BEFORE **
1110 '** RUNNING PROGRAM) **
1120 '** **
1130 '**********************************
1140 GOSUB 3740
1150 CLS:KEY OFF:S=0
1160 COLOR 7,0:WIDTH 40
1170 FOR J= 10 TO 32
1180 LOCATE 5,J,0:PRINT CHR$ (220)
1190 NEXT J
1200 FOR J= 10 TO 32
1210 LOCATE 9,J:PRINT CHR$ (223)
1220 NEXT J
1230 FOR J= 6 TO 8
1240 LOCATE J,10:PRINT CHR$ (219)
1250 NEXT J
1260 FOR J= 6 TO 8
1270 LOCATE J,32:PRINT CHR$ (219)
1280 NEXT J
1290 COLOR 0,7
1300 LOCATE 7,13
1310 PRINT "SPECIAL OCCASIONS"
1320 COLOR 7,0
1330 FOR J= 8 TO 34
1340 LOCATE 4,J:PRINT CHR$ (176)
1350 NEXT J
1360 FOR J= 8 TO 34
1370 LOCATE 10,J:PRINT CHR$ (176)
1380 NEXT J
1390 FOR J= 5 TO 9
1400 LOCATE J,8:PRINT CHR$ (176)
1410 NEXT J
1420 FOR J= 5 TO 9
1430 LOCATE J,34:PRINT CHR$ (176)
1440 NEXT J
1450 COLOR 9,0
1460 LOCATE 12,19:PRINT "MENU"
1470 COLOR 7,0
1480 LOCATE 14,13:PRINT "1) ADD OCCASION"
1490 LOCATE 16,13:PRINT "2) DELETE OCCASION"
1500 LOCATE 18,13:PRINT "3) DISPLAY LISTING
1510 BEEP
1520 LOCATE 21,7:PRINT "PLEASE CHOOSE ENTRY 1,2 OR 3"
1530 LET X$="0"
1540 X$=INKEY$
1550 IF X$>"0" THEN 1560 ELSE 1540
1560 IF X$="1" THEN 1680
1570 IF X$="2" THEN 2080
1580 IF X$="3" THEN 2550
1590 IF X$="0" THEN 1540
1600 COLOR 25,0
1610 LOCATE 23,12:PRINT "WRONG ENTRY - RETRY"
1620 COLOR 7,0
1630 FOR X= 1 TO 1700
1640 NEXT X
1650 LOCATE 23,12 :PRINT " "
1660 BEEP
1670 GOTO 1530
1680 GOSUB 3670
1690 REM ROUTINE TO ADD AND SORT NEW OCCASION
1700 COLOR 9,0: LOCATE 12,15
1710 PRINT "ADD OCCASION"
1720 COLOR 7,0:LOCATE 14,1
1730 BEEP
1740 INPUT "ENTER NAME OF CELEBRANT ",A$
1750 BEEP
1760 LOCATE 16,1,0:INPUT "ENTER MONTH OF OCCASION ",B$
1770 FOR Y=1 TO 12
1780 IF B$=Z$(Y) THEN 1900
1790 NEXT Y
1800 FOR X=1 TO 30
1810 LOCATE 18,14,0:PRINT "THE MONTH INPUT"
1820 LOCATE 19,9 :PRINT "IS INCORRECT,PLEASE RETRY
1830 LOCATE 20,11 :PRINT "(USE CAPITAL LETTERS)"
1840 NEXT X
1850 LOCATE 18,1:PRINT" "
1860 PRINT" "
1870 PRINT" "
1880 LOCATE 16,1,0:PRINT" "
1890 GOTO 1750
1900 LOCATE 18,1,0:INPUT "ENTER DAY OF MONTH (1-31) ",C
1910 IF C >31 OR C=0 GOTO 1930
1920 GOTO 1990
1930 FOR X= 1 TO 40:LOCATE 20,1
1940 PRINT "PLEASE USE A NUMBER BETWEEN 01-31"
1950 NEXT X
1960 LOCATE 20,1:PRINT" "
1970 LOCATE 18,1:PRINT" "
1980 GOTO 1900
1990 LOCATE 20,1,0:INPUT "PLEASE INPUT TYPE OF OCCASION ",D$
2000 LOCATE 22,1,0:PRINT "A FILE WITH THIS INFO IS NOW BEING CREATED"
2010 OPEN B$ FOR APPEND AS #1
2020 WRITE#1,A$,B$,C,D$
2030 FOR X=1 TO 1000
2040 NEXT X
2050 CLOSE 1
2060 GOSUB 3670
2070 GOTO 1150
2080 GOSUB 3670
2090 LOCATE 12,12:PRINT "PLEASE ENTER BELOW"
2100 LOCATE 14,10:PRINT "THE MONTH IN WHICH THE"
2110 LOCATE 16,11:PRINT "PERSON TO BE DELETED"
2120 LOCATE 18,16:PRINT "APPEARS IN"
2130 COLOR 0,7:BEEP
2140 LOCATE 20,13,1:PRINT " MONTH ";:COLOR 7,0
2150 INPUT " ",MONTH$
2160 FOR Y=1 TO 12
2170 IF MONTH$=Z$(Y) THEN 2240
2180 NEXT Y
2190 FOR X= 1 TO 60
2200 LOCATE 22,13,0:PRINT "WRONG INPUT,RETRY"
2210 NEXT X
2220 LOCATE 22,1,0:PRINT SPC(40)
2230 GOTO 2080
2240 OPEN MONTH$ FOR INPUT AS #1
2250 DIM F$(40),G$(40),H$(40),I$(40)
2260 FOR J=1 TO 40
2270 IF EOF(1) THEN 2300
2280 INPUT #1,F$(J),G$(J),H$(J),I$(J)
2290 NEXT J
2300 GOSUB 3670
2310 LOCATE 12,6,0:PRINT "THE FOLLOWING NAMES ARE LISTED"
2320 LOCATE 13,9,0:PRINT "UNDER THE MONTH ";MONTH$
2330 IF EOF(1) AND J=1 THEN 4070
2340 CLOSE 1:L=J-1:T=15
2350 FOR K=1 TO L
2360 LOCATE (T),12,0
2370 PRINT F$(K)
2380 T=T+1
2390 NEXT K
2400 LOCATE 22,3,0:PRINT "ENTER EXACTLY AS ABOVE,THE NAME OF"
2410 LOCATE 23,8,0:PRINT "THE PERSON TO BE DELETED"
2420 LOCATE 24,10,1
2430 INPUT;N$
2440 OPEN MONTH$ FOR INPUT AS #1
2450 OPEN "TEMPOCCA" FOR OUTPUT AS #2
2460 IF EOF (1) THEN 2510
2470 INPUT#1,FF$,GG$,HH$,II$
2480 IF FF$=N$ THEN 2460
2490 WRITE#2,FF$,GG$,HH$,II$
2500 GOTO 2460
2510 CLOSE
2520 KILL MONTH$
2530 NAME "TEMPOCCA" AS MONTH$
2540 GOTO 1150
2550 REM ROUTINE TO DISPLAY/PRINT ANY MONTH/MONTHS OCCASIONS
2560 GOSUB 3670
2570 ON ERROR GOTO 3810
2580 LOCATE 12,7,0 :PRINT "PLEASE ENTER BELOW, THE MONTH "
2590 LOCATE 14,7 :PRINT "YOU WOULD LIKE TO BE DISPLAYED"
2600 LOCATE 16,14,1 :BEEP :COLOR 0,7 :PRINT " MONTH ";:COLOR 7,0:
2610 INPUT " ",E$
2620 FOR Y=1 TO 12
2630 IF E$=Z$(Y) THEN 2760
2640 NEXT Y
2650 FOR X=1 TO 30
2660 LOCATE 18,14,0 :PRINT "THE MONTH INPUT"
2670 LOCATE 19,9 :PRINT "IS INCORRECT ,PLEASE RETRY"
2680 LOCATE 20,11 :PRINT "(USE CAPITAL LETTERS)
2690 NEXT X
2700 LOCATE 18,1 :PRINT " "
2710 PRINT " "
2720 PRINT " "
2730 LOCATE 16,1,0:PRINT" "
2740 GOTO 2600
2750 N=10
2760 LOCATE 19,7 :PRINT "A FILE CONTAINING ALL THE INFO"
2770 IF LEN (E$)=3 THEN N=12
2780 IF LEN (E$)=4 THEN N=12
2790 IF LEN (E$)=5 THEN N=12
2800 IF LEN (E$)=6 THEN N=11
2810 IF LEN (E$)=7 THEN N=10
2820 IF LEN (E$)=8 THEN N=10
2830 IF LEN (E$)=9 THEN N=10
2840 LOCATE 21,N :PRINT "FOR THE MONTH "; E$
2850 LOCATE 23,10 :PRINT "IS NOW BEING PROCESSED"
2860 FOR X= 1 TO 1500
2870 NEXT X
2880 OPEN E$ FOR INPUT AS #1
2890 DIM F$(40),G$(40),H$(40),I$(40)
2900 FOR J=1 TO 40
2910 IF EOF(1) THEN 2990
2920 INPUT #1,F$(J),G$(J),H$(J),I$(J)
2930 NEXT J
2940 LOCATE 25,17,0:COLOR 26,0:PRINT "YOU HAVE EXCEEDED THE LIMITATIONS OF THIS PROGRAM"
2950 COLOR 7,0 :
2960 FOR X= 1 TO 6000
2970 NEXT X
2980 GOTO 1150
2990 IF EOF(1) AND J=1 THEN 4070
3000 CLOSE 1
3010 GOSUB 3670
3020 L=J-1
3030 M=12
3040 IF LEN (E$)=3 THEN M=19
3050 IF LEN (E$)=4 THEN M=18
3060 IF LEN (E$)=5 THEN M=17
3070 IF LEN (E$)=6 THEN M=17
3080 IF LEN (E$)=7 THEN M=17
3090 IF LEN (E$)=8 THEN M=16
3100 IF LEN (E$)=9 THEN M=16
3110 LOCATE 12,M
3120 COLOR 0,7:PRINT " ";E$;" "
3130 LOCATE 14,6 : COLOR 9,0:PRINT "NAME";
3140 LOCATE 14,21:PRINT "DATE";
3150 LOCATE 14,30:PRINT "OCCASION"
3160 COLOR 7,0
3170 LOCATE 16,1
3180 IF L > 4 THEN S=1
3190 FOR K=1 TO L
3200 PRINT F$(K);
3210 PRINT TAB(22) H$(K);
3220 PRINT TAB(30) I$(K)
3230 IF S=0 THEN PRINT
3240 NEXT K
3250 LOCATE 25,1:COLOR 15,0
3260 PRINT "F1-PRINT REPORT F2-RETURN TO MENU";
3270 KEY(1)ON:KEY(2)ON
3280 T$=INKEY$
3290 ON KEY (1) GOSUB 3340
3300 ON KEY (2) GOSUB 3320
3310 GOTO 3280
3320 KEY (1) OFF:KEY (2) OFF
3330 GOTO 1150
3340 REM PRINT ROUTINE
3350 KEY (1) OFF:KEY (2) OFF
3360 ESC$=CHR$(27)
3370 FOR X=1 TO 10
3380 LPRINT
3390 NEXT X
3400 LPRINT ESC$"B"
3410 LPRINT ESC$"!"
3420 LPRINT ESC$"E":LPRINT ESC$"Y"
3430 LPRINT TAB(8) "***************************"
3440 LPRINT TAB(8) "* +++++++++++++++++++++++ *"
3450 LPRINT TAB(8) "* + + *"
3460 LPRINT TAB(8) "* + SPECIAL OCCASIONS + *"
3470 LPRINT TAB(8) "* + + *"
3480 LPRINT TAB(8) "* +++++++++++++++++++++++ *"
3490 LPRINT TAB(8) "***************************"
3500 LPRINT :LPRINT
3510 LPRINT TAB(18)ESC$"X";E$;ESC$"Y"
3520 LPRINT
3530 LPRINT SPC(4)ESC$"X";" NAME ";ESC$"Y";SPC(10)ESC$"X";" DATE ";ESC$"Y";" ";ESC$"X";" OCCASION ";ESC$"Y"
3540 LPRINT
3550 P=J-1
3560 LPRINT
3570 FOR X= 1 TO P
3580 Z=LEN(F$(X))
3590 Y=(22 - Z)
3600 LPRINT F$(X);SPC(Y)H$(X);SPC(6)I$(X)
3610 LPRINT
3620 NEXT X
3630 FOR X= 1 TO 10
3640 LPRINT
3650 NEXT X
3660 GOTO 3270
3670 REM SUBROUTINE TO CLEAR THE SCREEN BELOW PICTURE
3680 Y$=" "
3690 FOR N=12 TO 23
3700 LOCATE N,1,0:PRINT Y$
3710 NEXT N
3720 RETURN
3730 PRINT"ALRIGHT"
3740 REM ROUTINE TO ASSIGN ALL THE MONTHS A STRING VAR
3750 DIM Z$(12)
3760 FOR Y=1 TO 12
3770 READ Z$(Y)
3780 NEXT Y
3790 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3800 RETURN
3810 REM ERROR ROUTINE -TRIED TO OPEN FILE THAT WAS NON-EXISTANT
3820 IF ERR=27 THEN GOTO 3970
3830 IF ERR=53 THEN GOTO 3850
3840 RESUME NEXT
3850 GOSUB 3670
3860 LOCATE 13,5,0 :PRINT "THERE IS CURRENTLY NO INFORMATION "
3870 LOCATE 15,5,0 :PRINT "IN THE FILE FOR THE MONTH ";E$
3880 LOCATE 17,5,0 :PRINT "YOU CAN MAKE AN ADDITION TO THIS"
3890 LOCATE 19,7,0 :PRINT "FILE IF YOU LIKE BY ENTERING"
3900 LOCATE 21,8,0 :PRINT "THE #1 ON THE MENU SCREEN"
3910 OPEN E$ FOR APPEND AS #1
3920 CLOSE
3930 FOR X=1 TO 80
3940 NEXT X
3950 GOSUB 3670
3960 GOTO 1450
3970 GOSUB 3670
3980 LOCATE 13,5,0 :PRINT "THE CURRENT OPERATION CANNOT BE "
3990 LOCATE 15,5,0 :PRINT "COMPLETED BECAUSE THE PRINTER IS"
4000 LOCATE 17,13,0 :PRINT "NOT OPERATIONAL"
4010 LOCATE 19,5,0 :PRINT "PLEASE RETURN PRINTER TO ON-LINE"
4020 LOCATE 21,9,0 :PRINT "BEFORE HITTING F1 AGAIN"
4030 FOR X=1 TO 3000
4040 NEXT X
4050 CLOSE 1
4060 RESUME 3010
4070 GOSUB 3670
4080 LOCATE 17,8,0 :COLOR 15,0
4090 PRINT "THIS FILE IS CURRENTLY EMPTY "
4100 FOR X=1 TO 2000
4110 NEXT X
4120 GOSUB 3670
4130 CLOSE 1
4140 GOTO 1150
4150 END